arm64_armv8_dict = {
  '?amin': {
    's': {
      '_k': 'arm/amin.c',
    },
    'd': {
      '_k': 'arm/amin.c',
    },
    'c': {
      '_k': 'arm/zamin.c',
    },
    'z': {
      '_k': 'arm/zamin.c',
    },
  },
  '?max': {
    's': {
      '_k': 'arm/max.c',
    },
    'd': {
      '_k': 'arm/max.c',
    },
  },
  '?min': {
    's': {
      '_k': 'arm/min.c',
    },
    'd': {
      '_k': 'arm/min.c',
    },
  },
  'i?amin': {
    's': {
      '_k': 'arm/iamin.c',
    },
    'd': {
      '_k': 'arm/iamin.c',
    },
    'c': {
      '_k': 'arm/izamin.c',
    },
    'z': {
      '_k': 'arm/izamin.c',
    },
  },
  'i?max': {
    's': {
      '_k': 'arm/imax.c',
    },
    'd': {
      '_k': 'arm/imax.c',
    },
  },
  'i?min': {
    's': {
      '_k': 'arm/imin.c',
    },
    'd': {
      '_k': 'arm/imin.c',
    },
  },
  '?trsm_kernel': {
    's': {
      '_LN': 'generic/trsm_kernel_LN.c',
      '_LT': 'generic/trsm_kernel_LT.c',
      '_RN': 'generic/trsm_kernel_RN.c',
      '_RT': 'generic/trsm_kernel_RT.c',
    },
    'd': {
      '_LN': 'generic/trsm_kernel_LN.c',
      '_LT': 'generic/trsm_kernel_LT.c',
      '_RN': 'generic/trsm_kernel_RN.c',
      '_RT': 'generic/trsm_kernel_RT.c',
    },
    'c': {
      '_LN': 'generic/trsm_kernel_LN.c',
      '_LT': 'generic/trsm_kernel_LT.c',
      '_LR': 'generic/trsm_kernel_LN.c',
      '_LC': 'generic/trsm_kernel_LT.c',
      '_RN': 'generic/trsm_kernel_RN.c',
      '_RT': 'generic/trsm_kernel_RT.c',
      '_RR': 'generic/trsm_kernel_RN.c',
      '_RC': 'generic/trsm_kernel_RT.c',
    },
    'z': {
      '_LN': 'generic/trsm_kernel_LN.c',
      '_LT': 'generic/trsm_kernel_LT.c',
      '_LR': 'generic/trsm_kernel_LN.c',
      '_LC': 'generic/trsm_kernel_LT.c',
      '_RN': 'generic/trsm_kernel_RN.c',
      '_RT': 'generic/trsm_kernel_RT.c',
      '_RR': 'generic/trsm_kernel_RN.c',
      '_RC': 'generic/trsm_kernel_RT.c',
    },
  },
  '?amax': {
    's': {
      '_k': 'arm64/amax.S',
    },
    'd': {
      '_k': 'arm64/amax.S',
    },
    'c': {
      '_k': 'arm64/zamax.S',
    },
    'z': {
      '_k': 'arm64/zamax.S',
    },
  },
  '?axpy': {
    's': {
      '_k': 'arm64/axpy.S',
    },
    'd': {
      '_k': 'arm64/axpy.S',
    },
    'c': {
      '_k': 'arm64/zaxpy.S',
    },
    'z': {
      '_k': 'arm64/zaxpy.S',
    },
  },
  '?axpyc': {
    'c': {
      '_k': 'arm64/zaxpy.S',
    },
    'z': {
      '_k': 'arm64/zaxpy.S',
    },
  },
  '?rot': {
    's': {
      '_k': 'arm64/rot.S',
    },
    'd': {
      '_k': 'arm64/rot.S',
    },
    'cs': {
      '_k': 'arm64/zrot.S',
    },
    'zd': {
      '_k': 'arm64/zrot.S',
    },
  },
  '?scal': {
    's': {
      '_k': 'arm64/scal.S',
    },
    'd': {
      '_k': 'arm64/scal.S',
    },
    'c': {
      '_k': 'arm64/zscal.S',
    },
    'z': {
      '_k': 'arm64/zscal.S',
    },
  },
  '?gemv': {
    's': {
      '_n': 'arm64/gemv_n.S',
      '_t': 'arm64/gemv_t.S',
    },
    'd': {
      '_n': 'arm64/gemv_n.S',
      '_t': 'arm64/gemv_t.S',
    },
    'c': {
      '_n': 'arm64/zgemv_n.S',
      '_t': 'arm64/zgemv_t.S',
      '_r': 'arm64/zgemv_n.S',
      '_c': 'arm64/zgemv_t.S',
      '_o': 'arm64/zgemv_n.S',
      '_u': 'arm64/zgemv_t.S',
      '_s': 'arm64/zgemv_n.S',
      '_d': 'arm64/zgemv_t.S',
    },
    'z': {
      '_n': 'arm64/zgemv_n.S',
      '_t': 'arm64/zgemv_t.S',
      '_r': 'arm64/zgemv_n.S',
      '_c': 'arm64/zgemv_t.S',
      '_o': 'arm64/zgemv_n.S',
      '_u': 'arm64/zgemv_t.S',
      '_s': 'arm64/zgemv_n.S',
      '_d': 'arm64/zgemv_t.S',
    },
  },
  '?asum': {
    's': {
      '_k': 'arm64/asum.S',
    },
    'd': {
      '_k': 'arm64/asum.S',
    },
    'c': {
      '_k': 'arm64/casum.S',
    },
    'z': {
      '_k': 'arm64/zasum.S',
    },
  },
  '?copy': {
    's': {
      '_k': 'arm64/copy.S',
    },
    'd': {
      '_k': 'arm64/copy.S',
    },
    'c': {
      '_k': 'arm64/copy.S',
    },
    'z': {
      '_k': 'arm64/copy.S',
    },
  },
  '?swap': {
    's': {
      '_k': 'arm64/swap.S',
    },
    'd': {
      '_k': 'arm64/swap.S',
    },
    'c': {
      '_k': 'arm64/swap.S',
    },
    'z': {
      '_k': 'arm64/swap.S',
    },
  },
  'i?amax': {
    's': {
      '_k': 'arm64/iamax.S',
    },
    'd': {
      '_k': 'arm64/iamax.S',
    },
    'c': {
      '_k': 'arm64/izamax.S',
    },
    'z': {
      '_k': 'arm64/izamax.S',
    },
  },
  '?nrm2': {
    's': {
      '_k': 'arm64/nrm2.S',
    },
    'd': {
      '_k': 'arm64/nrm2.S',
    },
    'c': {
      '_k': 'arm64/znrm2.S',
    },
    'z': {
      '_k': 'arm64/znrm2.S',
    },
  },
  '?dot': {
    's': {
      '_k': 'generic/dot.c',
    },
    'd': {
      '_k': 'arm64/dot.S',
    },
  },
  '?dotc': {
    'c': {
      '_k': 'arm64/zdot.S',
    },
    'z': {
      '_k': 'arm64/zdot.S',
    },
  },
  '?dotu': {
    'c': {
      '_k': 'arm64/zdot.S',
    },
    'z': {
      '_k': 'arm64/zdot.S',
    },
  },
  '?dsdot': {
    's': {
      '_k': 'arm64/dot.S',
    },
    '': {
      '_k': 'arm64/dot.S',
    },
  },
  '?gemm': {
    's': {
      '_beta': 'arm64/sgemm_beta.S',
      '_incopy': 'generic/gemm_ncopy_16.c',
      '_itcopy': 'arm64/sgemm_tcopy_16.S',
      '_oncopy': 'arm64/sgemm_ncopy_4.S',
      '_otcopy': 'generic/gemm_tcopy_4.c',
    },
    'd': {
      '_beta': 'arm64/dgemm_beta.S',
      '_incopy': 'arm64/dgemm_ncopy_8.S',
      '_itcopy': 'arm64/dgemm_tcopy_8.S',
      '_oncopy': 'arm64/dgemm_ncopy_4.S',
      '_otcopy': 'arm64/dgemm_tcopy_4.S',
    },
    'c': {
      '_incopy': 'generic/zgemm_ncopy_8.c',
      '_itcopy': 'generic/zgemm_tcopy_8.c',
      '_oncopy': 'generic/zgemm_ncopy_4.c',
      '_otcopy': 'generic/zgemm_tcopy_4.c',
    },
    'z': {
      '_incopy': 'generic/zgemm_ncopy_4.c',
      '_itcopy': 'generic/zgemm_tcopy_4.c',
      '_oncopy': 'generic/zgemm_ncopy_4.c',
      '_otcopy': 'generic/zgemm_tcopy_4.c',
    },
  },
  '?trmm_kernel': {
    's': {
      '_LN': 'arm64/strmm_kernel_16x4.S',
      '_LT': 'arm64/strmm_kernel_16x4.S',
      '_RN': 'arm64/strmm_kernel_16x4.S',
      '_RT': 'arm64/strmm_kernel_16x4.S',
    },
    'd': {
      '_LN': 'arm64/dtrmm_kernel_8x4.S',
      '_LT': 'arm64/dtrmm_kernel_8x4.S',
      '_RN': 'arm64/dtrmm_kernel_8x4.S',
      '_RT': 'arm64/dtrmm_kernel_8x4.S',
    },
    'c': {
      '_LN': 'arm64/ctrmm_kernel_8x4.S',
      '_LT': 'arm64/ctrmm_kernel_8x4.S',
      '_LR': 'arm64/ctrmm_kernel_8x4.S',
      '_LC': 'arm64/ctrmm_kernel_8x4.S',
      '_RN': 'arm64/ctrmm_kernel_8x4.S',
      '_RT': 'arm64/ctrmm_kernel_8x4.S',
      '_RR': 'arm64/ctrmm_kernel_8x4.S',
      '_RC': 'arm64/ctrmm_kernel_8x4.S',
    },
    'z': {
      '_LN': 'arm64/ztrmm_kernel_4x4.S',
      '_LT': 'arm64/ztrmm_kernel_4x4.S',
      '_LR': 'arm64/ztrmm_kernel_4x4.S',
      '_LC': 'arm64/ztrmm_kernel_4x4.S',
      '_RN': 'arm64/ztrmm_kernel_4x4.S',
      '_RT': 'arm64/ztrmm_kernel_4x4.S',
      '_RR': 'arm64/ztrmm_kernel_4x4.S',
      '_RC': 'arm64/ztrmm_kernel_4x4.S',
    },
  },
  '?gemm_kernel': {
    's': {
      '': 'arm64/sgemm_kernel_16x4.S',
    },
    'd': {
      '': 'arm64/dgemm_kernel_8x4.S',
    },
    'c': {
      '_n': 'arm64/cgemm_kernel_8x4.S',
      '_l': 'arm64/cgemm_kernel_8x4.S',
      '_r': 'arm64/cgemm_kernel_8x4.S',
      '_b': 'arm64/cgemm_kernel_8x4.S',
    },
    'z': {
      '_n': 'arm64/zgemm_kernel_4x4.S',
      '_l': 'arm64/zgemm_kernel_4x4.S',
      '_r': 'arm64/zgemm_kernel_4x4.S',
      '_b': 'arm64/zgemm_kernel_4x4.S',
    },
  },
}
